Zusätzliche Inhalte übergeben
In diesem Thema
Wenn nur einige wenige Variablen oder Felder zusätzlich zu den Daten der Datenbindung hinzugefügt werden sollen, gibt es zwei Möglichkeiten:
- Wenn die Daten über die Laufzeit des Berichts konstant sind, können sie einfach vor dem Design- oder Druckaufruf per LL.Variables.Add hinzugefügt werden.
- Wenn die Daten sich von Seite zu Seite oder sogar Zeile zu Zeile ändern, können die Informationen innerhalb des AutoDefineNewPage oder AutoDefineNewLine-Ereignisses per LL.Fields.Add übergeben werden.
Das folgende Beispiel zeigt beide Ansätze:
void LL_AutoDefineNewLine(object sender, AutoDefineNewLineEventArgs e)
{
// ggf. zum nächsten Datensatz wechseln, wenn dies notwendig ist
// GetCurrentFieldValue ist eine Funktion Ihrer Applikation, die
// den Inhalt des Datenfeldes liefert.
(sender as ListLabel).Fields.Add("AdditionalData.AdditionalField", GetCurrentFieldValue());
}
// ...
using (ListLabel LL = new ListLabel())
{
// Datenquelle definieren/zuweisen
LL.DataSource = CreateDataSet();
// Zusätzliche Datenfelder anmelden
LL.Variables.Add("AdditionalData.UserName", GetCurrentUserName());
LL.Variables.Add("AdditionalData.ProjectName ", GetCurrentProjectName());
// ...
// Ereignisbehandlung für eigene Felder hinzufügen
LL.AutoDefineNewLine += new AutoDefineNewLineHandler(LL_AutoDefineNewLine);
// Designer aufrufen
LL.Design();
// Drucken
LL.Print();
}
Private Sub LL_AutoDefineNewLine(sender As Object, e As AutoDefineElementEventArgs) Handles LL.AutoDefineNewLine
' ggf. zum nächsten Datensatz wechseln, wenn dies notwendig ist
' GetCurrentFieldValue ist eine Funktion Ihrer Applikation, die
' den Inhalt des Datenfeldes liefert.
TryCast(sender, ListLabel).Fields.Add("AdditionalData.AdditionalField", GetCurrentFieldValue())
End Sub
// ...
Using LL As New ListLabel()
' Datenquelle definieren/zuweisen
LL.DataSource = CreateDataSet()
' Zusätzliche Datenfelder anmelden
LL.Variables.Add("AdditionalData.UserName", GetCurrentUserName())
LL.Variables.Add("AdditionalData.ProjectName ", GetCurrentProjectName())
' ...
' Designer aufrufen
LL.Design()
' Drucken
LL.Print()
End Using